package moj_pakiet;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Lokata {
	String nrLokaty;
	String nrKonta;
	double stanLokaty;
	double rata;
	int kapitalizacjaWMiesiacach;
	String odKiedy;
	String doKiedy;
	
	public String toString(){
		return "nr lokaty: "+nrLokaty+"\nnr konta: "+nrKonta+"\nstanLokaty: "+stanLokaty+
				"\nrata: "+rata+"\nkapitalizacja co "+kapitalizacjaWMiesiacach+" miesiecy\n"+
				"od: "+odKiedy+"\ndo: "+doKiedy+"\n";
	}
	
	public Lokata(){
		
	}
	
	public Lokata(String nrKonta,
			double stanLokaty,
			double rata,
			int kapitalizacjaWMiesiacach,
			String odKiedy,
			String doKiedy){
		
		this.nrKonta=nrKonta;
		this.stanLokaty=stanLokaty;
		this.rata=rata;
		this.kapitalizacjaWMiesiacach=kapitalizacjaWMiesiacach;
		this.odKiedy=odKiedy;
		this.doKiedy=doKiedy;
	}
	
	public  boolean lokataDodajDoBazy() throws SQLException{
		try {
			Class.forName("org.sqlite.JDBC");
		} catch (ClassNotFoundException e) {
		
			e.printStackTrace();
			return false;
		}
		String nazwaBazy="baza.db";
		Connection polaczenie=null;
		try {
			polaczenie = DriverManager.getConnection("jdbc:sqlite:"+nazwaBazy);
		} catch (SQLException e) {
		
			e.printStackTrace();
			return false;
		}
	    
		
		Statement dodajWpis = null;
		try {
			dodajWpis = polaczenie.createStatement();
		} catch (SQLException e) {
				e.printStackTrace();
				return false;
		}
		
		
		dodajWpis.executeUpdate("INSERT INTO lokaty VALUES " +
							"('"+this.nrKonta+"','"+this.stanLokaty+"','"+ this.rata+ "','" +
							this.kapitalizacjaWMiesiacach + "','" + this.odKiedy + "','" + 
							this.doKiedy + "' );");
		
		polaczenie.close();
		return true;
		
		
	}
	
	
	public boolean lokataUsunZBazy(String nrLokaty) throws SQLException{

		String nazwabazy="baza.db";
		
		try {
			Class.forName("org.sqlite.JDBC");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		
		Connection polaczenie=null;
		polaczenie = DriverManager.getConnection("jdbc:sqlite:"+nazwabazy);
		
		Statement usunWpis=polaczenie.createStatement();
		usunWpis.executeUpdate("DELETE FROM lokaty where nrLokaty='"+nrLokaty+"'");

		polaczenie.close();
		return true;
		
	}
	
	public boolean pobierzDaneLokatyPoNr(String nrLokaty) throws SQLException{	
		String nazwabazy="baza.db";
			
			try {
				Class.forName("org.sqlite.JDBC");
			} catch (ClassNotFoundException e) {
			
				e.printStackTrace();
				return false;
			}

		Connection polaczenie=null;
		try {
			polaczenie = DriverManager.getConnection("jdbc:sqlite:"+nazwabazy);
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}
		 java.sql.Statement statement = null;
		try {
			statement = polaczenie.createStatement();
		} catch (SQLException e) {

			e.printStackTrace();
			return false;
		}
		 try {
			statement.setQueryTimeout(30);
		} catch (SQLException e) {

			e.printStackTrace();
			return false;
		}
		     
		ResultSet wynik = null;
		try {
			wynik = statement.executeQuery("select * from lokaty where nrLokaty='"+nrLokaty+"'");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		this.nrKonta=wynik.getString("nrKonta");
		this.nrLokaty=wynik.getString("nrLokaty");
		this.stanLokaty=wynik.getDouble("stanLokaty");
		this.rata=wynik.getDouble("rata");
		this.kapitalizacjaWMiesiacach=wynik.getInt("kapitalizacja_w_miesiacach");
		this.odKiedy=wynik.getString("od_kiedy");
		this.doKiedy=wynik.getString("do_kiedy");
		
		polaczenie.close();
		return true;
		}
}
